function  [ Fm W W2] = createInverseFilter( N,filterLen )

    Fm = zeros(N,N);
    W = zeros(N,N);
    fun = @(n,m) exp(i* 2* pi* (m-1)*(n-1)/N);
    w =  dbaux(filterLen);
    [lpd,hpd,lpr,hpr] = orthfilt(w); 
    
    vecLp = zeros(1,N);
    vecHp = zeros(1,N);
    vecLp(1:(filterLen*2)) = lpd;
    vecHp(1:(filterLen*2)) = hpd*(-1) ;
  
    N2 = N/2;
    for k= 1:N2
      W(k,:) = vecLp;
      W(k +N2,: ) = vecHp;
      vecLp = circshift(vecLp',2)';
      vecHp = circshift(vecHp',2)';
    end
    for k= 1:N
  
        for j = 1:N
            Fm(k,j) = fun(k,j);
        end
    end
    
    
    %%%Testing
    
      vecLp = Fm*vecLp';
      vecHp = Fm*vecHp';
      W2 = [ repmat(vecLp,[ 1 N/2]) repmat(vecHp,[ 1 N/2])];
    
    
end

